﻿#include "widget.h"
#include "ui_widget.h"
#include <QDebug>


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 设置单选按钮 男默认选中
    ui->radioButton_man->setChecked(true);

    // 选中女后打印信息
    connect(ui->radioButton_woman,&QRadioButton::clicked,[](){
        qDebug()<<"woman";
    });

    // 多选按钮
    connect(ui->checkBox_1,&QCheckBox::stateChanged,[=](int state){
        qDebug()<<state;
    });


    // 利用listWidget写诗
    // QListWidgetItem* item1=new QListWidgetItem("锄禾日当午");
    // // 设置文字对齐方式为水平居中
    // item1->setTextAlignment(Qt::AlignHCenter);
    // QListWidgetItem* item2=new QListWidgetItem("汗滴禾下土");
    // QListWidgetItem* item3=new QListWidgetItem("谁知盘中餐");
    // QListWidgetItem* item4=new QListWidgetItem("粒粒皆辛苦");
    // ui->listWidget->addItem(item1);
    // ui->listWidget->addItem(item2);
    // ui->listWidget->addItem(item3);
    // ui->listWidget->addItem(item4);

    QStringList list; // 相当于Qlist<QString>类型
    list<<"锄禾日当午"<<"汗滴禾下土"<<"谁知盘中餐"<<"粒粒皆辛苦";
    ui->listWidget->addItems(list);


    // treeWidget树控件的使用
    // 设置水平头
    ui->treeWidget->setHeaderLabels(QStringList()<<"英雄"<<"英雄介绍");

    // 创建顶层节点
    QTreeWidgetItem* item1=new QTreeWidgetItem(QStringList()<<"力量");
    QTreeWidgetItem* item2=new QTreeWidgetItem(QStringList()<<"敏捷");
    QTreeWidgetItem* item3=new QTreeWidgetItem(QStringList()<<"智力");

    // 加载顶层的节点
    ui->treeWidget->addTopLevelItem(item1);
    ui->treeWidget->addTopLevelItem(item2);
    ui->treeWidget->addTopLevelItem(item3);

    // 创建子节点
    QTreeWidgetItem* child1=new QTreeWidgetItem(QStringList()<<"张三"<<"前排坦克，能吸收伤害");
    // 添加子节点
    item1->addChild(child1);

    QTreeWidgetItem* child2=new QTreeWidgetItem(QStringList()<<"李四"<<"法师造成伤害");
    // 添加子节点
    child1->addChild(child2);


    // TableWidget控件
    // 设置列数
    ui->tableWidget->setColumnCount(3);

    // 设置水平表头
    ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");

    // 设置行数
    ui->tableWidget->setRowCount(5);

    // 设置正文
    //ui->tableWidget->setItem(0,0,new QTableWidgetItem("张三"));

    // 循环添加正文
    QStringList nameList;
    // QStringList可以通过[]获取到值，类似数组
    nameList<<"亚瑟"<<"赵云"<<"关羽"<<"张飞"<<"花木兰";

    QList<QString> sexlist;
    sexlist<<"男"<<"男"<<"男"<<"男"<<"女";

    for(int i=0;i<5;i++)
    {
        int col =0;
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(nameList[i]));
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(sexlist[i]));
        // 年龄设置为18，需要int转换成QString类型
        ui->tableWidget->setItem(i,col++,new QTableWidgetItem(QString::number(i+18)));
    }
    connect(ui->tableWidget,&QTableWidget::itemChanged,[](QTableWidgetItem *item)
        {
            qDebug()<<item->text();
        });
}

Widget::~Widget()
{
    delete ui;
}
